package com.irain.pp.tool.api.syn;

/**
 * @author WangYanPeng
 * @date 2017/11/2 21:16
 */
public interface SyncLockSupport {

    /**
     * 加锁
     *
     * @param lock   锁定对象
     * @param keys   键key 的数组
     * @param expire 失效时长（毫秒）
     * @param timeout 超时时长（毫秒）
     * @return 是否加锁成功
     */
    boolean lock(Class lock,final String[] keys,final long expire,final long timeout);

    /**
     * 解锁
     *
     * @param lock 锁定对象
     * @param keys 键key 的数组
     */
    void unlock(Class lock, String[] keys);

}
